#include <stdio.h>
#include <string.h>
#include "capteur.h"


void menu_capteur()
{
char chemin[]="capteur.txt";
int choix;
capteur c1;


printf("1:afficher ");
printf("\n2:enregistrer_capteur");
printf("\n3:supprimer_capteur");
printf("\n4:modifier_capteur");
printf("\ntaper autre bouton pour quitter menu");


printf ("\ndonner votre choix");
scanf("%d",&choix);

switch (choix)
{
case 1: afficher (chemin,c1);
menu_capteur();
break;
case 2: enregistrer_capteur (chemin,&c1) ;
menu_capteur();
break;
case 3: supprimer_capteur (chemin,&c1);
menu_capteur();
break;
case 4: modifier_capteur(chemin ,&c1);
menu_capteur();
break;
default :break;
}
}



void afficher(char chemin[],capteur c)
{FILE *f;

  f=fopen(chemin ,"r");
  if (f==NULL)
   printf ("erreur");
  else{
  while(fscanf(f,"%s %d %s",c.nom,&c.etat,c.emplacement) !=EOF)
  {
printf(" \n%s\t%d\t%s\n",c.nom,c.etat,c.emplacement);
}
  }

}




void enregistrer_capteur (char chemin[],capteur *c)
{
FILE *f;
f=fopen(chemin,"a");
if(f==NULL){
printf("\n Impossible d\'ouvrir le fichier ");
}else{
ajouter_capteur(c);
fprintf(f,"\n%s %d %s",c->nom,c->etat,c->emplacement);
}
fclose(f);
}


void supprimer_capteur (char chemin[] ,capteur *c)
{
char nom_capteur[20];
FILE *f1,*f2;

char temp[]="capteur1.txt";;


f1=fopen(chemin,"r");
f2=fopen(temp,"w");
if(f1==NULL||f2==NULL){
printf("\n Impossible d\'ouvrir leS fichier ");
}else{
printf("ok!\ndonner le nom du capteur a supprimer\n");
scanf("%s",nom_capteur);
while (fscanf(f1,"%s %d %s",(*c).nom,&(*c).etat,(*c).emplacement)!=EOF){

    if (strcmp(c->nom, nom_capteur) != 0)
   fprintf(f2,"%s %d %s\n",(*c).nom,(*c).etat,(*c).emplacement);
}
fclose(f1);
fclose(f2);
remove(chemin);
rename(temp,chemin);
printf("\ncapteur supprimé\n");
}
}
void modifier_capteur (char chemin[] ,capteur *c)
{
 char nom_capteur[20];


FILE *f1,*f2;
int choix;
char temp[]="capteur1.txt";
char a[10];
char x[30];
int b,t;

f1=fopen(chemin,"r");
f2=fopen(temp,"w");
if(f1==NULL||f2==NULL){
printf("\n Impossible d\'ouvrir leS fichier ");
}else{
printf("\ndonner le nom du capteur a modifier \n");
scanf("%s",nom_capteur);

printf("modifier ce capteur\n");
printf("***menu*****\n");
printf("1:modifier nom\n");
printf("2:modifier etat\n");
printf("3:modifier emplacement\n");
printf("************\n");

printf("donner votre choix ");
scanf("%d",&choix);

while (fscanf(f1,"%s %d %s",(*c).nom,&(*c).etat,(*c).emplacement)!=EOF)
    {
if (strcmp(c->nom, nom_capteur) ==0){
switch(choix){
case 1: printf("donner le nouveau nom");
           scanf("%s",a);
fprintf(f2,"%s %d %s\n",a,(*c).etat,(*c).emplacement);

break;
 case 2:printf ("donner la nouvelle etat du capteur");
          scanf("%d",&b);
fprintf(f2,"%s %d %s\n",(*c).nom,b,(*c).emplacement);
 break;
case 3: printf("donner le nouveau emplacemet");
           scanf("%s",x);
fprintf(f2,"%s %d %s\n",(*c).nom,(*c).etat,x);

break;
}}}
rewind(f1);
while (fscanf(f1,"%s %d %s",(*c).nom,&(*c).etat,(*c).emplacement)!=EOF)
    {

if (strcmp(c->nom, nom_capteur) !=0)
   fprintf(f2,"%s %d %s\n",(*c).nom,(*c).etat,(*c).emplacement);

 
}
fclose(f1);
fclose(f2);
remove(chemin);
rename(temp,chemin);
}}

void ajouter_capteur(capteur *c)
{
printf(" donner le nom du capteur");
scanf("%s",(*c).nom);
printf("donner l'etat du capteur");
scanf ("%d",&c->etat);
printf("donner l'emplacement du capteur");
scanf("%s",c->emplacement);
}
/*void creer_fichier (capteur *c)
{FILE *f;
int choix;
char chemin[]="capteur.txt";
f=fopen(chemin,"w");
if(f==NULL){
printf("\n Impossible d\'ouvrir le fichier ");
}else{
do
{printf("ajouter un capteur:");
ajouter_capteur(c);
fwrite(&c,sizeof(capteur),1,f);

do
{printf("voulez-vous continer oui 1/non 0");
scanf("%d",&choix);
}while ((choix<0)||(choix>1));
}while (choix!=0);

}
fclose(f);

}*/


